package util;

import java.util.InputMismatchException;
import java.util.Scanner;

public final class InputUtil {
    private InputUtil() {}

    private static final Scanner SCANNER = new Scanner(System.in);

    /**
     * 从控制台获取给定范围内的整数
     *
     * @param tip 提示
     * @param min 最小值
     * @param max 最大值
     * @return 用户输入的整数
     */
    public static int getInputInteger(String tip, int min, int max) {
        PrintUtil.printString(tip);
        try {
            while (true) {
                int number = SCANNER.nextInt();
                if (number >= min && number <= max) {
                    SCANNER.reset();
                    return number;
                } else {
                    System.out.printf("输入错误，请输入%d~%d范围内的数字：\n", min, max);
                }
            }
        } catch (InputMismatchException e) {
            System.out.println("请输入正确数字！");
            System.exit(0);
        }
        return 0;
    }

    /**
     * 从控制台获取一个字符串
     * @param tip 提示信息
     * @return 用户输入的字符串
     */
    public static String getInputText(String tip) {
        PrintUtil.printString(tip);
        return SCANNER.next();
    }

    public static int askForInt() {
        return SCANNER.nextInt();
    }
}
